package cn.edu.lingnan.lsqn.service;

import java.util.List;

import cn.cdahua.basic.model.Pager;
import cn.edu.lingnan.lsqn.model.Group;
import cn.edu.lingnan.lsqn.model.Role;
import cn.edu.lingnan.lsqn.model.User;

public interface IUserService {
	public void add(User user, Integer[] g_id, Integer[] r_id);

	public void delete(int id);

	public void update(User user, Integer[] g_id, Integer[] r_id);

	public void update(User user);

	public void updatePwd(int u_id, String oldPwd, String newPwd);

	public void updateStatus(int u_id);

	public User load(int id);
	
	/**
	 * 列表用户信息
	 * @return
	 */
	public Pager<User> find();
	
	/**
	 * 获取某个用户的所有组信息
	 * @param id
	 * @return
	 */
	public List<Group> listUserGroup(int id);
	
	/**
	 * 获取某个用户的所有角色信息
	 * @param id
	 * @return
	 */
	public List<Role> listUserRole(int id);
	/**
	 * 获取用户所有角色id号
	 * @param id
	 * @return
	 */
	public List<Integer> listUserRoleIds(int id);
	/**
	 * 获取用户所有组id号
	 * @param id
	 * @return
	 */
	public List<Integer> listUserGroupIds(int id);
	/**
	 * 获取某组中的所有用户信息
	 * @param g_id
	 * @return
	 */
	public Pager<User> listUserByGroup(int g_id);
	/**
	 * 获取某角色的所有信息
	 * @param r_id
	 * @return
	 */
	public Pager<User> listUserByRole(int r_id);
	
	public User login(User user);

	User loadByName(String username);

	User loadByEmail(String email);
}
